#include "RANGE.h"

RANGE_T* RANGE_t;



//************************************
// Method:    	CALCU_SAMA						//< SAMA运算函数
// Programmer:  duan
// Time:		2019/04/07
// Returns:   	bool							//< 成功：true；失败：false
// Parameter: 	Model_Base_t * arg				//< 模块参数结构体指针
// Parameter: 	float dt						//< 运算周期
// Parameter: 	bool * DI						//< 数字量输入值数组指针
// Parameter: 	bool * DO						//< 数字量输出值数组指针
// Parameter: 	bool * AI						//< 模拟量输入值数组指针
// Parameter: 	bool * AO						//< 模拟量输出值数组指针
//************************************
bool CALCU_SAMA(RANGE)(Model_Base_t* arg, float dt, bool* DI, bool* DO, float* AI, float* AO)
{
	/****************变量定义区开始**************/
	/*<<<<<定义输入变量>>>>>*/
	float defAI;		//< 模拟量输入
	float UL;			//< 幅值上限
	float DL;			//< 幅值下限
	
	/*<<<<<定义输出变量>>>>>*/
	float Output_Value =0;
	
	/*<<<<<定义参数变量>>>>>*/
	

	/****************变量定义区结束**************/

	/****************变量赋值**************/
	/*<<<<<输入变量赋值>>>>>*/
	defAI = AI[0];
	UL = AI[1];
	DL = AI[2];
	

	/*<<<<<参数变量赋值>>>>>*/
	
	

	/*<<<<<中间变量赋值>>>>>*/
	

	/**************变量赋值结束************/

	/********************************************/
	/**************算法功能实现开始**************/
	/********************************************/
	if (defAI < DL)						//< 模拟量输入小于幅值下限
		Output_Value = DL;
	else if (defAI > UL)				//< 模拟量输入大于幅值上限
		Output_Value = UL;
	else
		Output_Value = defAI;

	/********************************************/
	/**************算法功能实现结束**************/
	/********************************************/	

	/****************运算结果输出**************/
	AO[0] = Output_Value;
	/**************运算结果输出完毕************/
	return true;
}


